﻿namespace TestApp
{
    using System;
    using System.Diagnostics;
    using UDKDevKitVSX.Interfaces;

    public class Stub : IUdkCommandInterface
    {
        public void Send(string command)
        {
            Debug.Fail(command);
        }

        public void Close()
        {
        }
    }

    class Program
    {
        static void Main(string[] args)
        {
            var udkConduit = UDKDevKitVSX.UdkConduit.Create(new Stub());

            udkConduit.AddLineToLog("This is test message 1");
            udkConduit.AddLineToLog("This is test message 2");
            udkConduit.AddLineToLog("This is test message 3");

            udkConduit.ShowDllForm();

            udkConduit.AddLineToLog("One More");

            udkConduit.EditorLoadClass("Engine.Actor");

            udkConduit.EditorGotoLine(10, 1);

            udkConduit.ClearAWatch(1);
            udkConduit.ClearAWatch(0);
            udkConduit.ClearAWatch(2);

            udkConduit.LockList(0);
            udkConduit.AddAWatch(0, -1, "N1", "O10");
            udkConduit.AddAWatch(0, 1, "N1", "O11");
            udkConduit.AddAWatch(0, 1, "N1", "O11");
            udkConduit.AddAWatch(0, 1, "N1", "O11");
            udkConduit.AddAWatch(0, 1, "N1", "O11");
            udkConduit.AddAWatch(0, 1, "N1", "O11");
            udkConduit.AddAWatch(0, 2, "N1", "O12");
            udkConduit.AddAWatch(0, 2, "N1", "O12");
            udkConduit.AddAWatch(0, 2, "N1", "O12");
            udkConduit.AddAWatch(0, 2, "N1", "O12");
            udkConduit.AddAWatch(0, 2, "N1", "O12");
            udkConduit.UnlockList(0);
            udkConduit.LockList(1);
            udkConduit.AddAWatch(1, -1, "N2", "O20");
            udkConduit.UnlockList(1);
            udkConduit.LockList(2);
            udkConduit.UnlockList(2);

            udkConduit.ShowDllForm();

            System.Threading.Thread.Sleep(60000);

            ((IDisposable)udkConduit).Dispose();
        }
    }
}
